package com.strive.village.common;

/**
 * @Author: strivePeng
 * @CreateTime: 2024年04月18日
 * @Description:
 **/
import lombok.Data;
import java.io.Serializable;

@Data
public class Result implements Serializable {
    private int code; // 状态码
    private String msg; // 返回的消息
    private Object data; // 返回的数据 可以使用泛型定义

    /**
     * 定义一个返回消息的方法
     */
    private static Result success(int code, String msg, Object data) {
        Result r = new Result();
        r.setCode(code);
        r.setMsg(msg);
        r.setData(data);

        return r;
    }

    /*
     * 成功时返回的消息模板
     **/
    public static Result success(Object data) {
        return success(200, "操作成功！", data);
    }

    /**
     * 失败是返回消息
     */
    public static Result fail(int code, String msg, Object data) {
        Result r = new Result();
        r.setCode(code);
        r.setMsg(msg);
        r.setData(data);

        return r;
    }

    public static Result fail(String msg) {
        return fail(400, msg, null);
    }
}
